package tv.starfu.sequencer.gui;

import de.lessvoid.nifty.controls.NiftyControl;

/**
 * A multi-state button
 * @author nia radical
 */
public interface MultiStateButton extends NiftyControl {
    /**
     * Click/toggle this button
     */
    void activate();
    
    /**
     * Changes to next available state
     */
    void nextState();
    
    /**
     * Reverts to previous state.
     */
    void previousState();
    
    /**
     * Switches to state identified by integer
     * @param state  
     */
    void switchState(int state);
    
    /**
     * Returns the element Id
     * @return id
     */
    String getID();
    
    /**
     * Sets the cursor icon
     */
    void setCursor();
    
    
}
